<?php

namespace app\admin\controller;


use think\Request;
use think\Db;
use Verification\Verification;

class Role extends Verification
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

       $list=Db::name('role')
            ->field(['id','position','have','status'])
            ->order('id','asc')
            ->select();
        return view('role/tables',[
            'title'=>'角色列表',
            'list'=>$list
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {

        return view('role/add',['title'=>'添加角色']);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $data= Request::instance()->param();

        $list=Db::name('role')
            ->field(['position','status'])
            ->insert($data);
        if(!empty($list)){
            return   $this->success('添加成功','main/index');
        }else{

            return     $this->error('添加失败');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        $id=Request::instance()->param('id');
//        $list= Db::field(['*'])
//            ->table([
//            'uj_role'=>'r',
//                'uj_jurisdiction'=>'j',
//            'uj_role_jurisdiction'=>'rj'
//            ])
//            ->where([
//                'r.id'=>$id,
//               'r.id' =>'rj.rid',
//               'j.id'=> 'rj.jid'
//            ])
//            ->select();
        $list = Db::field(['j.j_name'])
            ->table(['uj_role' => 'r',   'uj_jurisdiction'=>'j', 'uj_role_jurisdiction'=>'rj'])
            ->where('r.id',$id)
            ->where('r.id = rj.rid')
            ->where('j.id = rj.jid')
            ->select();
        return view('role/table1',[
            'title'=>'权限详情',
            'list'=>$list,
            'id'=>$id
        ]);

    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {

        $id= Request::instance()->param('id');
//        dump($id);die();
//       显示权限
        $list[]=Db::field(['j.id','j_name'])
            ->table(['uj_role'=>'r','uj_jurisdiction'=>'j', 'uj_role_jurisdiction'=>'rj'])
            ->where('r.id=rj.rid')
            ->where('j.id=rj.jid')
            ->where('r.id',$id)
            ->select();

//    判断之前有没有权限
        $arr[0]=0;
        if ($list[0]==null){
            $list1=Db::field(['j.id','j_name'])
                ->table(['uj_jurisdiction'=>'j'])
                ->select();

    } else{
            foreach ($list[0] as $k=> $v){
                $arr[]=$v['id'];
            }

            $list1=Db::field(['j.id','j_name'])
                ->table(['uj_jurisdiction'=>'j'])
                ->where('id','not in',$arr)
                ->select();
    }


        return view('role/edit',[
            'title'=>'用户列表',
            'list'=>$list[0],
            'list1'=>$list1,
            'id'=>$id
        ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $data=Request::instance()->param();
        $jid=$data['jid'];
//        var_dump($data);die();
//       查询  是否已有权限
        $rj=Db::name('role_jurisdiction')
            ->field(['rid'])
            ->where(['rid'=>$data['id']])
            ->find();
//        已有就删除
        if ($rj !==null){

           $db=Db::name('role_jurisdiction')
                ->where(['rid'=>$data['id']])
                ->delete();
        }
//        添加 role_jurisdiction 表
        $have='';
        foreach ($jid as $k => $v){

            $list=Db::name('role_jurisdiction')
                ->field(['jid','rid'])
                ->insert([
                    'rid'=>$data['id'],
                    'jid'=>$v
                ]);
//        查询所有权限
            $name=Db::name('jurisdiction')
                ->field(['j_name'])
                ->where(['id'=>$v])
                ->find();
            $have .=$name['j_name'].',   ';

        }
//        更改 role 的数据
        $list=Db::name('role')
            ->where(['id'=>$data['id']])
            ->update(['have'=>$have]);
        if(!empty($list)){
            return   $this->success('添加成功','main/index');
        }else{

            return     $this->error('添加失败');
        }


    }
    	
    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        echo '删除页面';
    }


    /**
     *     判断有无权限
     *
     * @param $x     权限id
     * @return mixed   查询结果
     *
     *
     */
//    public function yanzheng($x){
//
//        $name=Cookie::get('name');
//        $has=Cookie::has('name');
//        if(empty($has)){
//            return $this->error('登入失效!请重新登入','admin/index/login');
//        }
//
//        $list=Db::field('j.j_name')
//            ->table(['uj_role'=>'r','uj_user'=>'u', 'uj_user_role'=>'ur' ,'uj_role_jurisdiction'=>'rj','uj_jurisdiction'=>'j'])
//            ->where('u.id=ur.uid')
//            ->where('r.id=ur.rid')
//            ->where('r.id=rj.rid')
//            ->where('j.id=rj.jid')
//            ->where('j.id',$x)
//            ->where('u.name',$name)
//            ->find();
//
//        return $list;
//    }
}
